/**
 * 队列是一种列表
 * 队列只能在队尾添加元素，队头删除元素。
 * 队列先进先出
 */
class Queue {

    constructor() {
        this.dataStore = [];
    }

    /**
     * 队列中添加元素
     * @param ele
     */
    enqueue(ele) {
        this.dataStore.push(ele);
    }

    /**
     * 队列中删除元素
     * @param ele
     */
    dequeue(ele) {
        return this.dataStore.shift();
    }

    /**
     * 返回队列中第一个元素
     */
    front() {
        return this.dataStore[0];
    }

    /**
     * 返回队列中最后一个元素
     */
    end() {
        return this.dataStore[this.dataStore.length - 1];
    }
}

let queue = new Queue(), val;

queue.enqueue("金海宾")
queue.enqueue("金海芳")
queue.enqueue("金立红")

while (val = queue.dequeue()) {
    console.log(val);
}